{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### GRU\n",
    "\n",
    "    GRU由Cho等人于2014年提出，优化LSTM结构。 \n",
    "    Kyunghyun Cho,Bart van Merrienboer,Caglar Gulcehre,Dzmitry Bahdanau,Fethi Bougares,Holger Schwenk,Yoshua Bengio.\n",
    "    Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation.Computer ence, 2014.\n",
    "\n",
    "    更新门：Zt = sigmoid(Wz.[ ht_1 , xt])\n",
    "    \n",
    "    重置门：Zr = sigmoid(Wr.[ ht_1 , xt])\n",
    "    \n",
    "    记忆体：ht = (1-Zt) * ht_1 + Zt * ht~\n",
    "    \n",
    "    候选隐藏层：ht~ = tanh(W.[rt * ht_1 , xt])\n",
    "    \n",
    "### TF描述GRU\n",
    "\n",
    "    tf.keras.layers.GRU(记忆体个数，return_sequences=是否返回输出) \n",
    "    return_sequences=True  各时间步输出ht \n",
    "    return_sequences=False 仅最后时间步输出ht（默认）（最后一层用False，中间层用True）\n",
    "    \n",
    "    例：\n",
    "    model = tf.keras.Sequential([\n",
    "        GRU(80, return_sequences=True),\n",
    "        Dropout(0.2),\n",
    "        GRU(100),\n",
    "        Dropout(0.2),\n",
    "        Dense(1)\n",
    "    ])\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 2066 samples, validate on 240 samples\n",
      "Epoch 1/50\n",
      "2066/2066 [==============================] - 12s 6ms/sample - loss: 0.0198 - val_loss: 0.0059\n",
      "Epoch 2/50\n",
      "2066/2066 [==============================] - 5s 3ms/sample - loss: 0.0012 - val_loss: 0.0023\n",
      "Epoch 3/50\n",
      "2066/2066 [==============================] - 5s 2ms/sample - loss: 0.0012 - val_loss: 0.0033\n",
      "Epoch 4/50\n",
      "2066/2066 [==============================] - 4s 2ms/sample - loss: 0.0011 - val_loss: 0.0034\n",
      "Epoch 5/50\n",
      "2066/2066 [==============================] - 5s 2ms/sample - loss: 0.0010 - val_loss: 0.0022\n",
      "Epoch 6/50\n",
      "2066/2066 [==============================] - 5s 3ms/sample - loss: 9.3373e-04 - val_loss: 0.0046\n",
      "Epoch 7/50\n",
      "2066/2066 [==============================] - 5s 2ms/sample - loss: 9.9417e-04 - val_loss: 0.0038\n",
      "Epoch 8/50\n",
      "2066/2066 [==============================] - 5s 2ms/sample - loss: 9.1927e-04 - val_loss: 0.0034\n",
      "Epoch 9/50\n",
      "2066/2066 [==============================] - 4s 2ms/sample - loss: 8.6133e-04 - val_loss: 0.0020\n",
      "Epoch 10/50\n",
      "2066/2066 [==============================] - 5s 2ms/sample - loss: 8.2789e-04 - val_loss: 0.0016\n",
      "Epoch 11/50\n",
      "2066/2066 [==============================] - 5s 2ms/sample - loss: 8.7941e-04 - val_loss: 0.0016\n",
      "Epoch 12/50\n",
      "2066/2066 [==============================] - 4s 2ms/sample - loss: 7.9114e-04 - val_loss: 0.0022\n",
      "Epoch 13/50\n",
      "2066/2066 [==============================] - 4s 2ms/sample - loss: 7.8214e-04 - val_loss: 0.0022\n",
      "Epoch 14/50\n",
      "2066/2066 [==============================] - 4s 2ms/sample - loss: 8.2755e-04 - val_loss: 0.0041\n",
      "Epoch 15/50\n",
      "2066/2066 [==============================] - 4s 2ms/sample - loss: 8.3498e-04 - val_loss: 0.0049\n",
      "Epoch 16/50\n",
      "2066/2066 [==============================] - 4s 2ms/sample - loss: 7.9836e-04 - val_loss: 0.0024\n",
      "Epoch 17/50\n",
      "2066/2066 [==============================] - 4s 2ms/sample - loss: 8.5130e-04 - val_loss: 0.0038\n",
      "Epoch 18/50\n",
      "2066/2066 [==============================] - 5s 2ms/sample - loss: 7.3381e-04 - val_loss: 0.0015\n",
      "Epoch 19/50\n",
      "2066/2066 [==============================] - 5s 3ms/sample - loss: 7.7386e-04 - val_loss: 0.0023\n",
      "Epoch 20/50\n",
      "2066/2066 [==============================] - 5s 3ms/sample - loss: 7.4340e-04 - val_loss: 0.0074\n",
      "Epoch 21/50\n",
      "2066/2066 [==============================] - 5s 2ms/sample - loss: 7.6381e-04 - val_loss: 0.0025\n",
      "Epoch 22/50\n",
      "2066/2066 [==============================] - 5s 2ms/sample - loss: 6.7151e-04 - val_loss: 0.0045\n",
      "Epoch 23/50\n",
      "2066/2066 [==============================] - 5s 3ms/sample - loss: 6.2744e-04 - val_loss: 0.0036\n",
      "Epoch 24/50\n",
      "2066/2066 [==============================] - 5s 2ms/sample - loss: 7.2753e-04 - val_loss: 0.0081\n",
      "Epoch 25/50\n",
      "2066/2066 [==============================] - 5s 3ms/sample - loss: 7.4371e-04 - val_loss: 0.0061\n",
      "Epoch 26/50\n",
      "2066/2066 [==============================] - 5s 3ms/sample - loss: 6.6449e-04 - val_loss: 0.0029\n",
      "Epoch 27/50\n",
      "2066/2066 [==============================] - 5s 3ms/sample - loss: 6.9581e-04 - val_loss: 0.0041\n",
      "Epoch 28/50\n",
      "2066/2066 [==============================] - 5s 3ms/sample - loss: 7.3673e-04 - val_loss: 0.0040\n",
      "Epoch 29/50\n",
      "2066/2066 [==============================] - 5s 3ms/sample - loss: 6.1573e-04 - val_loss: 0.0058\n",
      "Epoch 30/50\n",
      "2066/2066 [==============================] - 5s 3ms/sample - loss: 6.4748e-04 - val_loss: 0.0019\n",
      "Epoch 31/50\n",
      "2066/2066 [==============================] - 5s 3ms/sample - loss: 7.0374e-04 - val_loss: 0.0046\n",
      "Epoch 32/50\n",
      "2066/2066 [==============================] - 6s 3ms/sample - loss: 7.0539e-04 - val_loss: 0.0024\n",
      "Epoch 33/50\n",
      "2066/2066 [==============================] - 6s 3ms/sample - loss: 6.6366e-04 - val_loss: 0.0024\n",
      "Epoch 34/50\n",
      "2066/2066 [==============================] - 6s 3ms/sample - loss: 6.5914e-04 - val_loss: 0.0024\n",
      "Epoch 35/50\n",
      "2066/2066 [==============================] - 6s 3ms/sample - loss: 6.0126e-04 - val_loss: 0.0014\n",
      "Epoch 36/50\n",
      "2066/2066 [==============================] - 7s 3ms/sample - loss: 5.8942e-04 - val_loss: 0.0014\n",
      "Epoch 37/50\n",
      "2066/2066 [==============================] - 7s 3ms/sample - loss: 5.6207e-04 - val_loss: 0.0042\n",
      "Epoch 38/50\n",
      "2066/2066 [==============================] - 6s 3ms/sample - loss: 6.7952e-04 - val_loss: 0.0014\n",
      "Epoch 39/50\n",
      "2066/2066 [==============================] - 6s 3ms/sample - loss: 6.0234e-04 - val_loss: 0.0030\n",
      "Epoch 40/50\n",
      "2066/2066 [==============================] - 6s 3ms/sample - loss: 6.0038e-04 - val_loss: 0.0045-\n",
      "Epoch 41/50\n",
      "2066/2066 [==============================] - 6s 3ms/sample - loss: 5.8996e-04 - val_loss: 0.0034\n",
      "Epoch 42/50\n",
      "2066/2066 [==============================] - 6s 3ms/sample - loss: 6.1351e-04 - val_loss: 0.0098\n",
      "Epoch 43/50\n",
      "2066/2066 [==============================] - 6s 3ms/sample - loss: 7.4488e-04 - val_loss: 0.0023\n",
      "Epoch 44/50\n",
      "2066/2066 [==============================] - 6s 3ms/sample - loss: 6.2329e-04 - val_loss: 0.0024\n",
      "Epoch 45/50\n",
      "2066/2066 [==============================] - 6s 3ms/sample - loss: 6.8950e-04 - val_loss: 0.0021\n",
      "Epoch 46/50\n",
      "2066/2066 [==============================] - 6s 3ms/sample - loss: 6.2275e-04 - val_loss: 0.0023\n",
      "Epoch 47/50\n",
      "2066/2066 [==============================] - 7s 3ms/sample - loss: 5.9048e-04 - val_loss: 0.0018\n",
      "Epoch 48/50\n",
      "2066/2066 [==============================] - 7s 3ms/sample - loss: 6.5932e-04 - val_loss: 0.0054\n",
      "Epoch 49/50\n",
      "2066/2066 [==============================] - 7s 3ms/sample - loss: 6.1253e-04 - val_loss: 0.0017\n",
      "Epoch 50/50\n",
      "2066/2066 [==============================] - 7s 4ms/sample - loss: 5.7931e-04 - val_loss: 0.0030\n",
      "Model: \"sequential\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "gru (GRU)                    multiple                  19920     \n",
      "_________________________________________________________________\n",
      "dropout (Dropout)            multiple                  0         \n",
      "_________________________________________________________________\n",
      "gru_1 (GRU)                  multiple                  54600     \n",
      "_________________________________________________________________\n",
      "dropout_1 (Dropout)          multiple                  0         \n",
      "_________________________________________________________________\n",
      "dense (Dense)                multiple                  101       \n",
      "=================================================================\n",
      "Total params: 74,621\n",
      "Trainable params: 74,621\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "均方误差: 1514.881622\n",
      "均方根误差: 38.921480\n",
      "平均绝对误差: 33.726331\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import tensorflow as tf\n",
    "from tensorflow.keras.layers import Dropout, Dense, GRU\n",
    "import matplotlib.pyplot as plt\n",
    "import os\n",
    "import pandas as pd\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "from sklearn.metrics import mean_squared_error, mean_absolute_error\n",
    "import math\n",
    "\n",
    "maotai = pd.read_csv('./SH600519.csv')  # 读取股票文件\n",
    "\n",
    "training_set = maotai.iloc[0:2426 - 300, 2:3].values  # 前(2426-300=2126)天的开盘价作为训练集,表格从0开始计数，2:3 是提取[2:3)列，前闭后开,故提取出C列开盘价\n",
    "test_set = maotai.iloc[2426 - 300:, 2:3].values  # 后300天的开盘价作为测试集\n",
    "\n",
    "# 归一化\n",
    "sc = MinMaxScaler(feature_range=(0, 1))  # 定义归一化：归一化到(0，1)之间\n",
    "training_set_scaled = sc.fit_transform(training_set)  # 求得训练集的最大值，最小值这些训练集固有的属性，并在训练集上进行归一化\n",
    "test_set = sc.transform(test_set)  # 利用训练集的属性对测试集进行归一化\n",
    "\n",
    "x_train = []\n",
    "y_train = []\n",
    "\n",
    "x_test = []\n",
    "y_test = []\n",
    "\n",
    "# 测试集：csv表格中前2426-300=2126天数据\n",
    "# 利用for循环，遍历整个训练集，提取训练集中连续60天的开盘价作为输入特征x_train，第61天的数据作为标签，for循环共构建2426-300-60=2066组数据。\n",
    "for i in range(60, len(training_set_scaled)):\n",
    "    x_train.append(training_set_scaled[i - 60:i, 0])\n",
    "    y_train.append(training_set_scaled[i, 0])\n",
    "# 对训练集进行打乱\n",
    "np.random.seed(7)\n",
    "np.random.shuffle(x_train)\n",
    "np.random.seed(7)\n",
    "np.random.shuffle(y_train)\n",
    "tf.random.set_seed(7)\n",
    "# 将训练集由list格式变为array格式\n",
    "x_train, y_train = np.array(x_train), np.array(y_train)\n",
    "\n",
    "# 使x_train符合RNN输入要求：[送入样本数， 循环核时间展开步数， 每个时间步输入特征个数]。\n",
    "# 此处整个数据集送入，送入样本数为x_train.shape[0]即2066组数据；输入60个开盘价，预测出第61天的开盘价，循环核时间展开步数为60; 每个时间步送入的特征是某一天的开盘价，只有1个数据，故每个时间步输入特征个数为1\n",
    "x_train = np.reshape(x_train, (x_train.shape[0], 60, 1))\n",
    "# 测试集：csv表格中后300天数据\n",
    "# 利用for循环，遍历整个测试集，提取测试集中连续60天的开盘价作为输入特征x_train，第61天的数据作为标签，for循环共构建300-60=240组数据。\n",
    "for i in range(60, len(test_set)):\n",
    "    x_test.append(test_set[i - 60:i, 0])\n",
    "    y_test.append(test_set[i, 0])\n",
    "# 测试集变array并reshape为符合RNN输入要求：[送入样本数， 循环核时间展开步数， 每个时间步输入特征个数]\n",
    "x_test, y_test = np.array(x_test), np.array(y_test)\n",
    "x_test = np.reshape(x_test, (x_test.shape[0], 60, 1))\n",
    "\n",
    "model = tf.keras.Sequential([\n",
    "    GRU(80, return_sequences=True),\n",
    "    Dropout(0.2),\n",
    "    GRU(100),\n",
    "    Dropout(0.2),\n",
    "    Dense(1)\n",
    "])\n",
    "\n",
    "model.compile(optimizer=tf.keras.optimizers.Adam(0.001),\n",
    "              loss='mean_squared_error')  # 损失函数用均方误差\n",
    "# 该应用只观测loss数值，不观测准确率，所以删去metrics选项，一会在每个epoch迭代显示时只显示loss值\n",
    "\n",
    "checkpoint_save_path = \"./checkpoint/stock.ckpt\"\n",
    "\n",
    "if os.path.exists(checkpoint_save_path + '.index'):\n",
    "    print('-------------load the model-----------------')\n",
    "    model.load_weights(checkpoint_save_path)\n",
    "\n",
    "cp_callback = tf.keras.callbacks.ModelCheckpoint(filepath=checkpoint_save_path,\n",
    "                                                 save_weights_only=True,\n",
    "                                                 save_best_only=True,\n",
    "                                                 monitor='val_loss')\n",
    "\n",
    "history = model.fit(x_train, y_train, batch_size=64, epochs=50, validation_data=(x_test, y_test), validation_freq=1,\n",
    "                    callbacks=[cp_callback])\n",
    "\n",
    "model.summary()\n",
    "\n",
    "file = open('./weights.txt', 'w')  # 参数提取\n",
    "for v in model.trainable_variables:\n",
    "    file.write(str(v.name) + '\\n')\n",
    "    file.write(str(v.shape) + '\\n')\n",
    "    file.write(str(v.numpy()) + '\\n')\n",
    "file.close()\n",
    "\n",
    "loss = history.history['loss']\n",
    "val_loss = history.history['val_loss']\n",
    "\n",
    "plt.plot(loss, label='Training Loss')\n",
    "plt.plot(val_loss, label='Validation Loss')\n",
    "plt.title('Training and Validation Loss')\n",
    "plt.legend()\n",
    "plt.show()\n",
    "\n",
    "################## predict ######################\n",
    "# 测试集输入模型进行预测\n",
    "predicted_stock_price = model.predict(x_test)\n",
    "# 对预测数据还原---从（0，1）反归一化到原始范围\n",
    "predicted_stock_price = sc.inverse_transform(predicted_stock_price)\n",
    "# 对真实数据还原---从（0，1）反归一化到原始范围\n",
    "real_stock_price = sc.inverse_transform(test_set[60:])\n",
    "# 画出真实数据和预测数据的对比曲线\n",
    "plt.plot(real_stock_price, color='red', label='MaoTai Stock Price')\n",
    "plt.plot(predicted_stock_price, color='blue', label='Predicted MaoTai Stock Price')\n",
    "plt.title('MaoTai Stock Price Prediction')\n",
    "plt.xlabel('Time')\n",
    "plt.ylabel('MaoTai Stock Price')\n",
    "plt.legend()\n",
    "plt.show()\n",
    "\n",
    "##########evaluate##############\n",
    "# calculate MSE 均方误差 ---> E[(预测值-真实值)^2] (预测值减真实值求平方后求均值)\n",
    "mse = mean_squared_error(predicted_stock_price, real_stock_price)\n",
    "# calculate RMSE 均方根误差--->sqrt[MSE]    (对均方误差开方)\n",
    "rmse = math.sqrt(mean_squared_error(predicted_stock_price, real_stock_price))\n",
    "# calculate MAE 平均绝对误差----->E[|预测值-真实值|](预测值减真实值求绝对值后求均值）\n",
    "mae = mean_absolute_error(predicted_stock_price, real_stock_price)\n",
    "print('均方误差: %.6f' % mse)\n",
    "print('均方根误差: %.6f' % rmse)\n",
    "print('平均绝对误差: %.6f' % mae)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
